#ifndef _TEXTURE_MARBLETEXTURE_H_
#define _TEXTURE_MARBLETEXTURE_H_

#include "Texture.h"
#include <cmath>
#include "../Basis/rgb.h"
#include "SolidNoise.h"

class MarbleTexture : public Texture
{
public:
	MarbleTexture(float stripes_per_unit, float _scale = 5.0f, int _octaves = 8);
	MarbleTexture(const rgb& _c0, const rgb& _c1, const rgb& _c2, 
		float stripes_per_unit, float _scale = 3.0f, int _octaves = 8);

	virtual rgb value(const Vector2& uv, const Vector3& p) const;

private:
	float freq, scale;
	int octave;
	rgb c0, c1, c2;
	SolidNoise noise;
};


#endif